Processes executed in a computer system may include execution context schedulers that schedule tasks of processes for execution in the computer system. A scheduler may create execution contexts (e.g., threads, fibers, or child processes) in order to execute tasks on processing resources. When a task blocks or is interrupted during execution on a processing resource, the state of the execution context on the processing resource is saved to allow the execution context to later be restored when the task resumes. The processing resource may then switch to a different execution context to continue executing tasks.
The process of switching execution contexts on a processing resource generally involves a significant amount of overhead. The process of saving the state of an execution context is time consuming and typically prevents other tasks from being executed on a processing resource while the state is being saved.